from lxml import etree

# 需要加载顺便解析的数据
f = open("test.html", mode="r", encoding="utf-8")
pageSource = f.read()

# 加载数据，返回element对象
et = etree.HTML(pageSource)

# xpath的语法
# result = et.xpath("/html") # /html表示根节点
# result = et.xpath("/html/") # 表达式中间的/表示一层html节点
# result = et.xpath("/html/body/span")
# result = et.xpath("/html/body/span/text()") # text()表示提取标签中的文本信息

# result = et.xpath("/html/body/*/li/a/text()") # * 任意的. 通配符
# result = et.xpath("/html/body/*/li/a/@href") # @表示属性
# result = et.xpath("//li/a/@href") # // 表示任意位置
result = et.xpath("//div[@class='job']/text()") # [@xx=xxx] 属性的限定

# 带循环的
result = et.xpath("/html/body/ul/li")
for item in result:
    href = item.xpath("./a/@href")[0] # ./表示当前这个元素
    text = item.xpath("./a/text()")[0] # ./表示当前这个元素
    print(text, href)